#include "KMotionDef.h"
// Defines axis 0, 1, 2 as simple step dir outputs
// enables them
// sets them as an xyz coordinate system for GCode
int main()
{
ch0->InputMode=ENCODER_MODE;
ch0->OutputMode=DAC_SERVO_MODE;
ch0->Vel=4000;
ch0->Accel=8000;
ch0->Jerk=80000;
ch0->P=20;
ch0->I=0.0002;
ch0->D=150;
ch0->FFAccel=0;
ch0->FFVel=0.38;
ch0->MaxI=2000;
ch0->MaxErr=100000;
ch0->MaxOutput=10000;
ch0->DeadBandGain=1;
ch0->DeadBandRange=0;
ch0->InputChan0=4;
ch0->InputChan1=4;
ch0->OutputChan0=0;
ch0->OutputChan1=1;
ch0->MasterAxis=-1;
ch0->LimitSwitchOptions=0x100;
ch0->LimitSwitchNegBit=0;
ch0->LimitSwitchPosBit=0;
ch0->SoftLimitPos=1e+009;
ch0->SoftLimitNeg=-1e+009;
ch0->InputGain0=1;
ch0->InputGain1=1;
ch0->InputOffset0=0;
ch0->InputOffset1=2.5;
ch0->OutputGain=1;
ch0->OutputOffset=0;
ch0->SlaveGain=1;
ch0->BacklashMode=BACKLASH_OFF;
ch0->BacklashAmount=0;
ch0->BacklashRate=0;
ch0->invDistPerCycle=1;
ch0->Lead=0;
ch0->MaxFollowingError=50;
ch0->StepperAmplitude=250;
ch0->iir[0].B0=1;
ch0->iir[0].B1=0;
ch0->iir[0].B2=0;
ch0->iir[0].A1=0;
ch0->iir[0].A2=0;
ch0->iir[1].B0=1;
ch0->iir[1].B1=0;
ch0->iir[1].B2=0;
ch0->iir[1].A1=0;
ch0->iir[1].A2=0;
ch0->iir[2].B0=0.00641859;
ch0->iir[2].B1=0.0128372;
ch0->iir[2].B2=0.00641859;
ch0->iir[2].A1=1.76281;
ch0->iir[2].A2=-0.78848;
EnableAxisDest(0,0);
ch1->InputMode=ENCODER_MODE;
ch1->OutputMode=DAC_SERVO_MODE;
ch1->Vel=4000;
ch1->Accel=8000;
ch1->Jerk=80000;
ch1->P=15;
ch1->I=1e-005;
ch1->D=200;
ch1->FFAccel=-0.001;
ch1->FFVel=0.43;
ch1->MaxI=1000;
ch1->MaxErr=100000;
ch1->MaxOutput=2000;
ch1->DeadBandGain=1;
ch1->DeadBandRange=0;
ch1->InputChan0=5;
ch1->InputChan1=6;
ch1->OutputChan0=1;
ch1->OutputChan1=0;
ch1->MasterAxis=-1;
ch1->LimitSwitchOptions=0x100;
ch1->LimitSwitchNegBit=0;
ch1->LimitSwitchPosBit=0;
ch1->SoftLimitPos=1e+009;
ch1->SoftLimitNeg=-1e+009;
ch1->InputGain0=1;
ch1->InputGain1=2;
ch1->InputOffset0=0;
ch1->InputOffset1=0;
ch1->OutputGain=1;
ch1->OutputOffset=0;
ch1->SlaveGain=1;
ch1->BacklashMode=BACKLASH_OFF;
ch1->BacklashAmount=0;
ch1->BacklashRate=0;
ch1->invDistPerCycle=1;
ch1->Lead=0;
ch1->MaxFollowingError=20;
ch1->StepperAmplitude=20;
ch1->iir[0].B0=1;
ch1->iir[0].B1=0;
ch1->iir[0].B2=0;
ch1->iir[0].A1=0;
ch1->iir[0].A2=0;
ch1->iir[1].B0=1;
ch1->iir[1].B1=0;
ch1->iir[1].B2=0;
ch1->iir[1].A1=0;
ch1->iir[1].A2=0;
ch1->iir[2].B0=0.00641907;
ch1->iir[2].B1=0.0128381;
ch1->iir[2].B2=0.00641907;
ch1->iir[2].A1=1.76294;
ch1->iir[2].A2=-0.788615;
EnableAxisDest(1,0);
ch2->InputMode=ENCODER_MODE;
ch2->OutputMode=DAC_SERVO_MODE;
ch2->Vel=4000;
ch2->Accel=8000;
ch2->Jerk=80000;
ch2->P=12;
ch2->I=0;
ch2->D=20;
ch2->FFAccel=0;
ch2->FFVel=0.2;
ch2->MaxI=2000;
ch2->MaxErr=100000;
ch2->MaxOutput=2000;
ch2->DeadBandGain=1;
ch2->DeadBandRange=0;
ch2->InputChan0=6;
ch2->InputChan1=14;
ch2->OutputChan0=2;
ch2->OutputChan1=0;
ch2->MasterAxis=-1;
ch2->LimitSwitchOptions=0x100;
ch2->LimitSwitchNegBit=0;
ch2->LimitSwitchPosBit=0;
ch2->SoftLimitPos=1e+009;
ch2->SoftLimitNeg=-1e+009;
ch2->InputGain0=1;
ch2->InputGain1=1;
ch2->InputOffset0=0;
ch2->InputOffset1=0;
ch2->OutputGain=1;
ch2->OutputOffset=0;
ch2->SlaveGain=1;
ch2->BacklashMode=BACKLASH_OFF;
ch2->BacklashAmount=0;
ch2->BacklashRate=0;
ch2->invDistPerCycle=1;
ch2->Lead=0;
ch2->MaxFollowingError=20;
ch2->StepperAmplitude=20;
ch2->iir[0].B0=1;
ch2->iir[0].B1=0;
ch2->iir[0].B2=0;
ch2->iir[0].A1=0;
ch2->iir[0].A2=0;
ch2->iir[1].B0=1;
ch2->iir[1].B1=0;
ch2->iir[1].B2=0;
ch2->iir[1].A1=0;
ch2->iir[1].A2=0;
ch2->iir[2].B0=0.0166094;
ch2->iir[2].B1=0.0332189;
ch2->iir[2].B2=0.0166094;
ch2->iir[2].A1=1.60679;
ch2->iir[2].A2=-0.673229;
EnableAxisDest(2,0);
ch0->OutputOffset=2;
EnableAxisDest(0,0);
ch1->OutputOffset=-8;
EnableAxisDest(1,0);
ch2->OutputOffset=-7;
EnableAxisDest(2,0);
DefineCoordSystem(0,1,2,-1);
Delay_sec(2);
SetBit(152);
return 0;
}
The SetBit(152) is to pull a relay to allow the servos to start.